Method and system for blockchain-based transactions for the atomic exchange of assets

ABSTRACT

A method for implementing a cooperative society through a blockchain with participation via computing devices includes: storing, in a blockchain node, a blockchain comprised of a plurality of blocks, each block including a block header and one or more blockchain data values, where at least one of the blockchain data values includes proposal data including at least a proposal identifier; receiving a vote message from each of a plurality of registered computing devices including the proposal identifier and an affirmative or negative vote; determining a proposal result based on a number of affirmative votes being above a predetermined threshold; generating a new block including a new block header and at least one new blockchain data value, the at least one new blockchain data value including the proposal result; and performing one or more actions based on data included in the proposal data.

CLAIM FOR PRIORITY

This application claims benefit of the following Patent Applications,all of which are hereby incorporated by reference herein: (1) ARIPOPatent Application No. AP/P/2021/013527, filed Oct. 1, 2021, entitled“Method and System for Blockchain-Based Transactions for the AtomicExchange of Assets,” by Ephraim Kimani Muhia and Zachariah Njoroge; and(2) PCT Application No. PCT/US2022/041842, filed Aug. 29, 2022, entitled“Method and System for Blockchain-Based Transactions for the AtomicExchange of Assets,” by Ephraim Kimani Muhia and Zachariah Njoroge.

FIELD

The present disclosure relates to the use of blockchains for the atomicexchange of assets; specifically through a blockchain that utilizescomputing devices for member interactions and participation in atomicexchanges of assets.

BACKGROUND

Blockchain was initially created as a storage mechanism for use inconducting payment transactions with a cryptographic currency. Using ablockchain provides a number of benefits, such as decentralization,distributed computing, transparency regarding transactions, and yet alsoproviding anonymity as to the individuals or entities involved in atransaction. One of the more popular aspects of a blockchain is that itis an immutable record: every transaction ever that is part of the chainis stored therein and cannot be changed due to the computationalrequirements and bandwidth limitations, particularly as a chain getslonger and a blockchain network adds more nodes.

Informal cooperative societies or pooled resource groups are usedthroughout Eastern Africa to pool and invest savings and other assetsfor a group of members. Informal cooperative societies are beneficial inhelping members perform large transactions and other actions that wouldbe difficult to do as individuals and can sometimes operate similar toother cooperative groups. In many instances, an informal cooperativesociety may be so informal as to not have any official documentationwhile maintaining a pool of millions of dollars. However, this lack ofdocumentation can result in a number of problems, such as due toembezzlement, mismanagement of funds, collusion, member disagreements,and other problems. Additionally, informal cooperative societies oftenrely on physical meetings between members for collection of funds,submission of new proposals, votes on proposals, how to use funds, andother actions. Such meetings can be time consuming, particularly overlarge distances, and may itself be a drain on resources for the informalcooperative society. These difficulties, combined with a system that haslargely ignored thorough recordkeeping, has resulted in cooperativesthat, while effective, can be vastly inefficient and difficult formembers.

Thus, there is a need for improvement in the informal cooperativesociety system, which can be accomplished through the use ofblockchains.

SUMMARY

The present disclosure provides a description of systems and methods forimplementing a cooperative society through a blockchain withparticipation via computing devices. A blockchain is established for acooperative society, which is used as an immutable record for allactions and activities of that cooperative society. The registration ofmembers and computing devices those members will use to interact withthe cooperative society are stored in the blockchain, where a blockchainnode is used to collect all proposals and votes on those proposals. Theproposals are stored in the blockchain, as well as results of votes,and, in some instances, the votes themselves may be stored in theblockchain, which creates an immutable, and thus indisputable, record ofall proposals and voting in the group. Smart contracts and othermechanisms can be used to ensure that proposals are carried out, such asthrough the automatic transfer of funds, initiation of purchases, etc.By using a blockchain for all records, the ability for a member toembezzle funds, mismanage the group, leave early, withhold theirdeposit, or otherwise act at the detriment of the group, can be removed.Additionally, by using a blockchain, members can participate through acomputing device for all actions, which eliminates the need to meetphysically, which can reduce the expenditure of the group or members formeetings, save time, and enable groups to be established oversignificantly longer distances and time zones, which can expand thereach of such societies. Thus, the use of a blockchain to implement acooperative society can result in significant improvements over existingsystems.

A method for implementing a cooperative society through a blockchainwith participation via computing devices includes: storing, in a memoryof a blockchain node, a blockchain, the blockchain being comprised of aplurality of blocks, each block including at least a block header andone or more blockchain data values, where at least one of the one ormore blockchain data values included in a specific block includesproposal data including at least a proposal identifier; receiving, by areceiver of the blockchain node, a vote message from each of a pluralityof registered computing devices, where the vote message includes atleast the proposal identifier and an affirmative or negative vote;determining, by a processor of the blockchain node, a proposal resultbased on a number of affirmative votes in the received vote messagesbeing above a predetermined threshold; generating, by the processor ofthe blockchain node, a new block, the new block including at least a newblock header and at least one new blockchain data value, the at leastone new blockchain data value including the proposal result; andperforming, by the processor of the blockchain node, one or more actionsbased on data included in the proposal data.

A system for implementing a cooperative society through a blockchainwith participation via computing devices includes: a plurality ofregistered computing devices; and a blockchain node including a memorystoring a blockchain, the blockchain being comprised of a plurality ofblocks, each block including at least a block header and one or moreblockchain data values, where at least one of the one or more blockchaindata values included in a specific block includes proposal dataincluding at least a proposal identifier, a receiver receiving a votemessage from each of the plurality of registered computing devices,where the vote message includes at least the proposal identifier and anaffirmative or negative vote, and a processor determining a proposalresult based on a number of affirmative votes in the received votemessages being above a predetermined threshold, generating a new block,the new block including at least a new block header and at least one newblockchain data value, the at least one new blockchain data valueincluding the proposal result, and performing one or more actions basedon data included in the proposal data.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The scope of the present disclosure is best understood from thefollowing detailed description of exemplary embodiments when read inconjunction with the accompanying drawings. Included in the drawings arethe following figures:

FIG. 1 is a block diagram illustrating a high-level system architecturefor implementing a cooperative society through a blockchain inaccordance with exemplary embodiments.

FIG. 2 is a block diagram illustrating a blockchain node of the systemof FIG. 1 for the implementation of a cooperative society in accordancewith exemplary embodiments.

FIG. 3 is a flow diagram illustrating a process for implementing acooperative society through a blockchain in accordance with exemplaryembodiments.

FIG. 4 is a flow chart illustrating an exemplary method for implementinga cooperative society through a blockchain with participation viacomputing devices in accordance with exemplary embodiments.

FIG. 5 is a block diagram illustrating a computer system architecture inaccordance with exemplary embodiments.

Further areas of applicability of the present disclosure will becomeapparent from the detailed description provided hereinafter. It shouldbe understood that the detailed description of exemplary embodiments isintended for illustration purposes only and are, therefore, not intendedto necessarily limit the scope of the disclosure.

DETAILED DESCRIPTION Glossary of Terms

Blockchain—A public ledger of all transactions of a blockchain-basedcurrency. One or more computing devices may comprise a blockchainnetwork, which may be configured to process and record transactions aspart of a block in the blockchain. Once a block is completed, the blockis added to the blockchain and the transaction record thereby updated.In many instances, the blockchain may be a ledger of transactions inchronological order or may be presented in any other order that may besuitable for use by the blockchain network. In some configurations,transactions recorded in the blockchain may include a destinationaddress and a currency amount, such that the blockchain records how muchcurrency is attributable to a specific address. In some instances, thetransactions are financial and others not financial, or might includeadditional or different information, such as a source address,timestamp, etc. In some embodiments, a blockchain may also oralternatively include nearly any type of data as a form of transactionthat is or needs to be placed in a distributed database that maintains acontinuously growing list of data records hardened against tampering andrevision, even by its operators, and may be confirmed and validated bythe blockchain network through proof of work and/or any other suitableverification techniques associated therewith. In some cases, dataregarding a given transaction may further include additional data thatis not directly part of the transaction appended to transaction data. Insome instances, the inclusion of such data in a blockchain mayconstitute a transaction. In such instances, a blockchain may not bedirectly associated with a specific digital, virtual, fiat, or othertype of currency.

System for Implementing a Cooperative Society through Blockchain

FIG. 1 illustrates a system 100 for the implementation of a cooperativesociety, through a blockchain with participation via member computingdevices.

The system 100 may include one or more blockchain nodes 102. Eachblockchain node 102 may be part of a blockchain network 104. Eachblockchain node 102 may be a computing system, such as illustrated inFIGS. 2 and 5 , discussed in more detail below, that is configured toperform functions related to the processing and management of theblockchain, including the generation of blockchain data values,verification of proposed blockchain transactions, verification ofdigital signatures, generation of new blocks, validation of new blocks,and maintenance of a copy of the blockchain.

The blockchain may be a distributed ledger that is comprised of at leasta plurality of blocks. Each block may include at least a block headerand one or more data values. Each block header may include at least atimestamp, a block reference value, and a data reference value. Thetimestamp may be a time at which the block header was generated and maybe represented using any suitable method (e.g., UNIX timestamp,DateTime, etc.). The block reference value may be a value thatreferences an earlier block (e.g., based on timestamp) in theblockchain. In some embodiments, a block reference value in a blockheader may be a reference to the block header of the most recently addedblock prior to the respective block. In an exemplary embodiment, theblock reference value may be a hash value generated via the hashing ofthe block header of the most recently added block. The data referencevalue may similarly be a reference to the one or more data values storedin the block that includes the block header. In an exemplary embodiment,the data reference value may be a hash value generated via the hashingof the one or more data values. For instance, the block reference valuemay be the root of a Merkle tree generated using the one or more datavalues.

The use of the block reference value and data reference value in eachblock header may result in the blockchain being immutable. Any attemptedmodification to a data value would require the generation of a new datareference value for that block, which would thereby require thesubsequent block's block reference value to be newly generated, furtherrequiring the generation of a new block reference value in everysubsequent block. This would have to be performed and updated in everysingle blockchain node 102 in the blockchain network 104 prior to thegeneration and addition of a new block to the blockchain in order forthe change to be made permanent. Computational and communicationlimitations may make such a modification exceedingly difficult, if notimpossible, thus rendering the blockchain immutable.

In some embodiments, the blockchain may be used to store informationregarding blockchain transactions conducted between two differentblockchain wallets. A blockchain wallet may include a private key of acryptographic key pair that is used to generate digital signatures thatserve as authorization by a payer for a blockchain transaction, wherethe digital signature can be verified by the blockchain network 104using the public key of the cryptographic key pair. In some cases, theterm “blockchain wallet” may refer specifically to the private key. Inother cases, the term “blockchain wallet” may refer to a computingdevice (e.g., computing devices 108) that stores the private key for usethereof in blockchain transactions. For instance, each computing devicemay each have their own private key for respective cryptographic keypairs and may each be a blockchain wallet for use in transactions withthe blockchain associated with the blockchain network. Computing devicesmay be any type of device suitable to store and utilize a blockchainwallet, such as a desktop computer, laptop computer, notebook computer,tablet computer, cellular phone, smart phone, smart watch, smarttelevision, wearable computing device, implantable computing device,etc.

Each blockchain data value stored in the blockchain may correspond to ablockchain transaction or other storage of data, as applicable. Ablockchain transaction may consist of at least: a digital signature ofthe sender of currency (e.g., a computing device 108) that is generatedusing the sender's private key, a blockchain address of the recipient ofcurrency (e.g., another computing device 108) generated using therecipient's public key, and a blockchain currency amount that istransferred or other data being stored. In the case of the blockchainbeing used for data storage separate from currency, the currency amountmay be replaced by such other data, as discussed below with respect tocooperative societies. In some blockchain transactions, the transactionmay also include one or more blockchain addresses of the sender whereblockchain currency is currently stored (e.g., where the digitalsignature proves their access to such currency), as well as an addressgenerated using the sender's public key for any change that is to beretained by the sender. Addresses to which cryptographic currency hasbeen sent that can be used in future transactions are referred to as“output” addresses, as each address was previously used to captureoutput of a prior blockchain transaction, also referred to as “unspenttransactions,” due to there being currency sent to the address in aprior transaction where that currency is still unspent. In some cases, ablockchain transaction may also include the sender's public key, for useby an entity in validating the transaction. For the traditionalprocessing of a blockchain transaction, such data may be provided to ablockchain node 102 in the blockchain network 104, either by the senderor the recipient. The node may verify the digital signature using thepublic key in the cryptographic key pair of the sender's wallet and alsoverify the sender's access to the funds (e.g., that the unspenttransactions have not yet been spent and were sent to address associatedwith the sender's wallet), a process known as “confirmation” of atransaction, and then include the blockchain transaction in a new block.The new block may be validated by other nodes in the blockchain network104 before being added to the blockchain and distributed to all of theblockchain nodes 102 in the blockchain network 104 in traditionalblockchain implementations. In cases where a blockchain data value maynot be related to a blockchain transaction, but instead the storage ofother types of data, blockchain data values may still include orotherwise involve the validation of a digital signature.

In the system 100, the blockchain may be used to store data for theoperation and management of a cooperative society. The cooperativesociety may be any informal or formal group of users such as, but notlimited to, a micro-savings group, a Chama, a Rotating Savings andCredit Association (ROSCA), an Accumulating Savings and CreditAssociation (ASCA), a Savings and Credit Cooperative (SACCO), and anagricultural cooperative, etc. The cooperative society may be made up ofa plurality of different users 106, also referred to as members, wherethe society may be made of as little as two members or as many asdesired by the society, such as dozens or hundreds or thousands. Eachuser 106 may have a computing device 108 associated therewith that theuser 106 may use to perform functions related to the operation andmanagement of the cooperative society. In some cases, the computingdevice 108 may be unique to the user 106 such that no user 106 may usemultiple computing devices 108 or no computing device 108 may be used bymultiple users 106. In other cases, each user 106 may be directlyassociated with a specific blockchain wallet (e.g., private key of acryptographic key pair) which may be used for all interactions with theuser 106, where the private key may move across computing devices 108 orwhere one computing device 108 may have private keys for multiple users106.

In the system 100, data necessary for the management and operation ofthe cooperative society may be stored in the blockchain, such as aninitial agreement, membership data, proposals, votes on proposals,actions performed by the cooperative society, land purchases, deposits,payouts, etc. In some embodiments, when the cooperative society isformed, initial rules and registration may be stored in the genesisblock or in early blocks of the blockchain, where any blockchain node102 may ensure compliance with those rules for any new blocks or actionsto be performed associated therewith. In some cases, the initial rulesmay consist of starting users 106 for the cooperative society, where anyrules or other data may be added only upon acceptance by the users 106.In some instances, the initial rules may require majority acceptance,unanimous acceptance, or some other threshold as may be decided by theusers 106, which may, in some cases, be saved in configuration data inthe blockchain nodes 102 or in the blockchain itself.

In some cases, registration data for users 106 may be stored in theblockchain itself. For instance, blockchain data values may include apublic key for each user 106 that is a member of the cooperativesociety, where the public key can be used to validate digital signaturesgenerated using a user's private key, to validate interactions beingwith a genuine, registered member of the cooperative society. In othercases, the registration data (e.g., a public key) may be stored in theblockchain nodes 102 themselves. In one example, the genesis block orfirst new block added to the blockchain may include the public keys foreach of the founding members of the cooperative society.

When a user 106 wants to make a proposal for the cooperative society,they may submit a proposal to a blockchain node 102 using theircomputing device 108. The proposal may be digitally signed using theirprivate key, such that the blockchain node 102 may be able to validatethe digital signature using the corresponding public key stored in theblockchain or other data storage. In some instances, a uniqueidentifier, such as a registration number, may be used to identify thepublic key to be used for the validation. If the validation of thedigital signature is unsuccessful, then the blockchain node 102 mayignore the proposal, as the failed validation may indicate that thesubmission is not from a registered member. In cases where membershipmay have levels, only some users 106 may have permission to make newproposals. In such cases, the blockchain node 102 may only accept theproposal upon successful validation of the digital signature andchecking permissions associated with that user 106 (e.g., stored in theblockchain itself or with the public key in other data storage).

When a proposal is accepted by the blockchain node 102 as beingsubmitted by a registered, authorized user 106, then the proposal may beadded to the blockchain. The proposal may be included as a newblockchain data value that is included in a new block generated by theblockchain node 102 and confirmed and added to the blockchain usingtraditional methods and systems. In some cases, the blockchain network104 may be comprised of only a single blockchain node 102, where theblockchain node 102 may provide its own confirmation. In some instances,the blockchain may be a private blockchain such that only authorizedblockchain nodes 102 and computing devices 108 may access or viewblockchain data, such that the registered users 106 may be able tovalidate the blocks and data therein, but where the data may not bepublicly available. In some cases, proposal data may include informationregarding the user 106 that submitted the proposal, or any other datathat may be necessary for users 106 to vote on the proposal,restrictions regarding voting on the proposal (e.g., which users 106 areallowed to vote, vote threshold requirements for passing the proposal,etc.), or actions to be performed as a result of the proposal, such asdiscussed in more detail below.

Once the proposal has been added to the blockchain, other users 106 maybe able to vote on the proposal. In some embodiments, blockchain nodes102 may electronically transmit notifications to users 106 viaassociated computing devices 108, which may notify the user 106 that anew proposal has been submitted, which may include proposal data orotherwise provide information suitable for the user 106 to be able toview the proposal for making their vote. The notification may betransmitted using any suitable method, such as via an e-mail, pushnotification in an application program, short message service message,multimedia message service message, etc. For example, a user 106 mayreceive a push notification in an application program on the computingdevice 108 used for the cooperative society informing the user 106 ofthe new proposal, where the user 106 may interact with the applicationprogram to view data on the proposal and make their vote.

When the user 106 is ready to make their vote, they may interact withtheir computing device 108 to vote on the proposal, such as by casting avote in the affirmative or in the negative for the proposal. The votemay be input by the user 106 on the computing device 108 using anysuitable method. The vote may be digitally signed by the user's privatekey, which may enable the blockchain node 102 to validate that the votecame from a registered and authorized user 106, and to ensure that thereare no duplicate votes or votes counted from unauthorized people ordevices. The computing device 108 may then submit the digitally signedvote to a blockchain node 102.

The blockchain node 102 may receive the digitally signed vote and mayvalidate the digital signature, such as using the methods discussedabove. The blockchain node 102 may make a tally of all of the votesreceived from the registered users 106. In some cases, the blockchainnodes 102 may wait until a vote has been received from every registereduser 106 that is authorized to vote on the proposal. In other cases,there may be criteria for ending a period of time after which the votesmay be counted, even if not every potentially authorized user 106 hassubmitted a vote. For instance, the proposal may be submitted with atime deadline, a minimum number of votes, a percentage of votes, orother suitable criteria. Once voting is closed for any of the abovereasons, the blockchain node 102 may count the affirmative votes andnegative votes.

If the number of affirmative votes meets a predetermined threshold, thenthe proposal may be approved. The predetermined threshold may be set inthe blockchain itself or in the configuration data for the blockchainnodes 102. In some cases, each proposal may have its own assignedpredetermined threshold, which may be included in the proposal data forthe proposal. For example, a cooperative society may require majorityapproval for some types of proposals, such as user deposits orwithdrawals of funds, but may require supermajority or unanimousapproval for other types of proposals, such as the purchase of realestate. If the proposal does not receive the required number ofaffirmative votes, the proposal may fail. In such cases, the blockchainnode 102 may generate a new blockchain data value to be included in anew block that is confirmed and added to the blockchain, where the newblockchain data value includes the negative result for the proposal. Thenegative result may include at least a unique identifier associated withthe proposal, also referred to herein as a “proposal identifier,” and anindication that the vote failed. In some cases, the count of the votesmay be included in the blockchain data value. In some embodiments, eachvote may be recorded in the blockchain, either in the same blockchaindata value as the result, or where a new blockchain data value may beincluded for every vote that is received on a proposal, which mayinclude the proposal identifier and the digitally signed vote, which mayenable any user 106 or other interested party to independently auditeach proposal and vote for the cooperative society.

If the proposal receives enough affirmative votes to meet or exceed theappropriate predetermined threshold, then the vote may be approved. Ablockchain node 102 may add a new blockchain data value for the approvedproposal, including the proposal identifier and the results of the votethat indicate approval. The blockchain node 102 may also perform one ormore actions as a result of the proposal. The actions performed by theblockchain node 102 may be based on the proposal itself. For example,the proposal may be for the addition of a new user 106 to thecooperative society, where the performed action may be the addition of anew blockchain data value to the blockchain (e.g., in a new block thatis generated by a blockchain node 102 and confirmed in the blockchainnetwork 104) that includes the public key for the new user 106, and, insome instances, may also include the updating of any other membershipdata. In another example, the proposal may be for the withdrawal ofsociety funds by a user 106. In such an instance, the blockchain node102 may initiate a payment transaction to be made from a transactionaccount for the society (e.g., whose account details may be stored inthe blockchain itself or otherwise available to the blockchain node 102)to the user 106, such as to a transaction account associated therewithas included in the registration data for the user 106. In yet anotherexample, the proposal may be for the purchasing of real estate by thecooperative society, where the blockchain node 102 may initiate thepurchase, such as by paying the required amount of funds from atransaction account for the cooperative society to an escrow service,electronically transmitting a contract or offer for purchase to anappropriate external device or system, etc. The actions to be performedby the blockchain node 102 may vary based on the proposals as well asthe operations and goals of the cooperative society itself.

In some embodiments, the blockchain network 104 may utilize smartcontracts for the performing of actions or management of the blockchainand/or cooperative society. For example, smart contracts may be executedto perform actions related to proposals, such as for the initiation ofpayment transactions. In another example, a proposal may include a smartcontract that may be executed upon approval of the proposal, which mayresult in the proposal being carried out. For example, the user 106 may,via their computing device 108, generate a smart contract that wouldtransfer a desired amount of funds to a transaction account specified bythe user 106 from the cooperative society's account. In some cases, theblockchain may include smart contracts that are executed periodically,where a proposal and approval vote may be required to prevent executionof that smart contract. For example, a smart contract may be establishedfor each registered user 106 for the collection of membership fees fromeach user 106 every month from a transaction account specified by theuser 106 at the time of registration, where a proposal must be submittedand approved to modify the transaction account, payment amount, orperiod of payment.

The methods and systems discussed herein may be applicable to any typeof cooperative society, regardless of membership type, operation type ofthe cooperative society, or goal of the cooperative society. Forexample, some cooperative societies are established as merry go rounds,where each user 106 contributes a specified amount of currency eachmonth (e.g., $1,000) and where one user 106 gets the total amount ofcontributions (e.g., $10,000 for a cooperative society with ten users106) each month. Smart contracts may be used to ensure thatcontributions or always made, to prevent a payout to a user 106 that hasnot contributed a predetermined number of times, to prevent a user 106that has received a payout from withdrawing from the society, etc.Because the blockchain is immutable, the ability for a user 106 to actfraudulent about a contribution or payout, or a user 106 to embezzlecontributions or operating funds, is removed as there is an immutablerecord of all actions and transactions for the cooperative society.

By using a blockchain, the problems faced by traditional cooperativesocieties can be removed entirely. For instance, because the record isimmutable, there can be no embezzlement, collusion, misplacement offunds, early exits, etc. Additionally, there can be full transparency ofall voting and the ability for any user 106 to fully validate every voteas well as the votes themselves, to ensure they are submitted bygenuine, authorized users 106. Furthermore, because every user 106 canparticipate using their computing device 108, there is no need forphysical meetings, which can vastly reduce the operating costs of acooperative society or the expenses that may be necessary by users 106to participate in a cooperative society. In addition, users 106 can voteand participate at their convenience, which can result in faster votesand higher participation rates due to the ease of participation andaccommodation for all users 106. Accordingly, the methods and systemsdiscussed herein provide for significant improvements in the operationand management of cooperative societies through the use of a blockchainand user participation through computing devices.

Blockchain Node

FIG. 2 illustrates an embodiment 200 of a blockchain node 102 in thesystem 100. It will be apparent to persons having skill in the relevantart that the embodiment of the blockchain node 102 illustrated in FIG. 2is provided as illustration only and may not be exhaustive to allpossible configurations of the blockchain node 102 suitable forperforming the functions as discussed herein. For example, the computersystem 500 illustrated in FIG. 5 and discussed in more detail below maybe a suitable configuration of the blockchain node 102.

The blockchain node 102 may include a receiving device 202. Thereceiving device 202 may be configured to receive data over one or morenetworks via one or more network protocols. In some instances, thereceiving device 202 may be configured to receive data from otherblockchain nodes 102, computing devices 108, and other systems andentities via one or more communication methods, such as radio frequency,local area networks, wireless area networks, cellular communicationnetworks, Bluetooth, the Internet, etc. In some embodiments, thereceiving device 202 may be comprised of multiple devices, such asdifferent receiving devices for receiving data over different networks,such as a first receiving device for receiving data over a local areanetwork and a second receiving device for receiving data via theInternet. The receiving device 202 may receive electronicallytransmitted data signals, where data may be superimposed or otherwiseencoded on the data signal and decoded, parsed, read, or otherwiseobtained via receipt of the data signal by the receiving device 202. Insome instances, the receiving device 202 may include a parsing modulefor parsing the received data signal to obtain the data superimposedthereon. For example, the receiving device 202 may include a parserprogram configured to receive and transform the received data signalinto usable input for the functions performed by the processing deviceto carry out the methods and systems described herein.

The receiving device 202 may be configured to receive data signalselectronically transmitted by computing devices 108 that may besuperimposed or otherwise encoded with registration data (e.g., publickeys, transaction account data, user information, device data, etc.),proposals (e.g., smart contracts, required actions, transaction accountdata, contracts, etc.), voting data (e.g., digitally signed votes,proposal identifiers, etc.), or other data as discussed herein. Thereceiving device 202 may also be configured to receive data signalselectronically transmitted by other blockchain nodes 102, such as may besuperimposed or otherwise encoded with blockchain data values, newblocks, confirmation messages, or other data used in the operation andmanagement of the blockchain.

The blockchain node 102 may also include a communication module 204. Thecommunication module 204 may be configured to transmit data betweenmodules, engines, databases, memories, and other components of theblockchain node 102 for use in performing the functions discussedherein. The communication module 204 may be comprised of one or morecommunication types and utilize various communication methods forcommunications within a computing device. For example, the communicationmodule 204 may be comprised of a bus, contact pin connectors, wires,etc. In some embodiments, the communication module 204 may also beconfigured to communicate between internal components of the blockchainnode 102 and external components of the blockchain node 102, such asexternally connected databases, display devices, input devices, etc. Theblockchain node 102 may also include a processing device. The processingdevice may be configured to perform the functions of the blockchain node102 discussed herein as will be apparent to persons having skill in therelevant art. In some embodiments, the processing device may includeand/or be comprised of a plurality of engines and/or modules speciallyconfigured to perform one or more functions of the processing device,such as a querying module 214, generation module 216, validation module218, etc. As used herein, the term “module” may be software or hardwareparticularly programmed to receive an input, perform one or moreprocesses using the input, and provides an output. The input, output,and processes performed by various modules will be apparent to oneskilled in the art based upon the present disclosure.

The blockchain node 102 may also include blockchain data 206, which maybe stored in a memory 212 of the blockchain node 102 or stored in aseparate area within the blockchain node 102 or accessible thereby. Theblockchain data 206 may include a blockchain, which may be comprised ofa plurality of blocks and be associated with the blockchain network 104.The blockchain data 206 may also or alternatively include any dataassociated with one or more blockchain wallets that may be used by theblockchain node 102, such as cryptographic key pairs, unspenttransaction outputs, digital asset amounts, network identifiers for theblockchain network 104, smart contracts, signature generationalgorithms, encryption algorithms, transaction account data, accountbalances, communication information for third party services, etc.

The blockchain node 102 may also include a memory 212. The memory 212may be configured to store data for use by the blockchain node 102 inperforming the functions discussed herein, such as public and privatekeys, symmetric keys, etc. The memory 212 may be configured to storedata using suitable data formatting methods and schema and may be anysuitable type of memory, such as read-only memory, random access memory,etc. The memory 212 may include, for example, encryption keys andalgorithms, communication protocols and standards, data formattingstandards and protocols, program code for modules and applicationprograms of the processing device, and other data that may be suitablefor use by the blockchain node 102 in the performance of the functionsdisclosed herein as will be apparent to persons having skill in therelevant art. In some embodiments, the memory 212 may be comprised of ormay otherwise include a relational database that utilizes structuredquery language for the storage, identification, modifying, updating,accessing, etc. of structured data sets stored therein. The memory 212may be configured to store, for example, cryptographic keys, salts,nonces, communication information for blockchain nodes 102 andblockchain networks 104, address generation and validation algorithms,digital signature generation and validation algorithms, hashingalgorithms for generating reference values, data for the generation andexecution of smart contracts, predetermined threshold values,configuration data, etc.

The blockchain node 102 may include a querying module 214. The queryingmodule 214 may be configured to execute queries on databases to identifyinformation. The querying module 214 may receive one or more data valuesor query strings and may execute a query string based thereon on anindicated database, such as the memory 212 of the blockchain node 102 toidentify information stored therein. The querying module 214 may thenoutput the identified information to an appropriate engine or module ofthe blockchain node 102 as necessary. The querying module 214 may, forexample, execute a query on the blockchain data 206 to identify a publickey to be used to validate a digital signature on a submitted proposalor a vote submitted by a user 106 via their computing device 108.

The blockchain node 102 may also include a generation module 216. Thegeneration module 216 may be configured to generate data for use by theblockchain node 102 in performing the functions discussed herein. Thegeneration module 216 may receive instructions as input, may generatedata based on the instructions, and may output the generated data to oneor more modules of the blockchain node 102. For example, the generationmodule 216 may be configured to generate blockchain data values, newblocks, block headers, reference values, smart contracts, etc. Thegeneration module 216 or other processing module of the blockchain node102 may be further configured to perform actions, such as via theexecution of smart contracts or other actions that may be necessary tobe performed following the approval of a proposal.

The blockchain node 102 may also include a validation module 218. Thevalidation module 218 may be configured to perform validations for theblockchain node 102 as part of the functions discussed herein. Thevalidation module 218 may receive instructions as input, which may alsoinclude data to be used in performing a validation, may perform avalidation as requested, and may output a result of the validation toanother module or engine of the blockchain node 102. The validationmodule 218 may, for example, be configured to validate digitalsignatures using suitable signature generation algorithms and keys,validate transaction values, and other data as discussed herein. Forinstance, the validation module 218 may also be configured to validateaccount balances, compliance with rules and regulations for thecooperative society, validate that a user 106 is authorized to vote on aspecific proposal, validate the results of a vote, etc.

The blockchain node 102 may also include a transmitting device 220. Thetransmitting device 220 may be configured to transmit data over one ormore networks via one or more network protocols. In some instances, thetransmitting device 220 may be configured to transmit data to otherblockchain nodes 102, computing devices 108, and other entities via oneor more communication methods, local area networks, wireless areanetworks, cellular communication, Bluetooth, radio frequency, theInternet, etc. In some embodiments, the transmitting device 220 may becomprised of multiple devices, such as different transmitting devicesfor transmitting data over different networks, such as a firsttransmitting device for transmitting data over a local area network anda second transmitting device for transmitting data via the Internet. Thetransmitting device 220 may electronically transmit data signals thathave data superimposed that may be parsed by a receiving computingdevice. In some instances, the transmitting device 220 may include oneor more modules for superimposing, encoding, or otherwise formattingdata into data signals suitable for transmission.

The transmitting device 220 may be configured to electronically transmitdata signals to computing devices 108, such as may be superimposed orotherwise encoded with requests for registration data, proposalnotifications, voting results, other data requests, operatinginformation for the cooperative society, etc. The transmitting device220 may also be configured to electronically transmit data signals toother blockchain nodes 102 that may be superimposed or otherwise encodedwith blockchain data values, new blocks, confirmation messages, or otherdata used in the operation and management of the blockchain

Process for Proposals and Voting in a Cooperative Society

FIG. 3 illustrates a process 300 for the submission of and voting on anew proposal in a cooperative society implemented through a blockchainin the system 100 of FIG. 1 as discussed above.

In step 302, the receiving device 202 of a blockchain node 102 in theblockchain network 104 of the system 100 may receive a new proposal froma user 106 in the cooperative society via a computing device 108, whichmay be submitted using any suitable communication network and method.For example, the cooperative society may have an application programthat the user 106 may execute on their computing device 108 forgenerating a new proposal, digitally signing the proposal, andsubmitting the proposal to the blockchain node 102. The proposal mayinclude any data that may be useful for the users 106 in the cooperativesociety for voting (e.g., names, pictures, titles, descriptions,geographic locations, etc.) as well as information regarding one or moreactions to be performed if the proposal is approved. In some cases, theproposal data may also include data regarding which users 106 areauthorized to vote on the proposal and the predetermined threshold forfinding approval of the proposal.

In step 304, the generation module 216 of the blockchain node 102 mayassign a proposal identifier to the received proposal, generate a newblockchain data value that includes the proposal identifier and otherproposal data, generate a new block that includes the new blockchaindata value, and have the new block confirmed (e.g., by other blockchainnodes 102 in the blockchain network 104 using traditional methods andsystems). In step 306, the transmitting device 220 of the blockchainnode 102 may electronically transmit a notification message to each ofthe computing devices 108 of registered users 106 (e.g., or only thoseregistered users 106 eligible to vote for the proposal, as applicable).The notification message may include at least the proposal identifier,or any other proposal data. Each user 106 may then view the proposal ontheir computing device 108, such as by the computing device 108retrieving the new blockchain data value in the new block from theblockchain and presenting the proposal data to the user 106 via thecooperative society's application program.

Each user 106 may select a vote for the proposal (e.g., affirmative ornegative, or from any other available options, such as may be specifiedin the proposal data), the vote may be digitally signed using a privatekey in the computing device 108, and the vote may be submitted to theblockchain node 102, where, in step 308, the receiving device 202 of theblockchain node 102 may receive digitally signed votes from each of thecomputing devices 108. In step 310, the blockchain node 102 maydetermine the result for the proposal based on the votes. In some cases,the validation module 218 of the blockchain node 102 may first validateeach of the received votes, such as by validating the digital signatureon a vote using the public key of the cryptographic key pair for whichthe private key was used to generate the signature, as well asvalidating that the user 106 that submitted the vote (e.g., identifiedvia the public key) is authorized to vote for that proposal, such asbased on the proposal data. The validation module 218 may determine ifthe vote is approved or fails based on a number of affirmative votes andthe predetermined threshold, which may specify a percentage ofaffirmative votes, number of affirmative votes, etc.

In step 312, the generation module 216 of the blockchain node 102 maygenerate a new blockchain data value that includes the result of theproposal (e.g., the proposal identifier, if the vote was approved orfailed, the number of votes, etc.) and may generate a new block thatincludes the new blockchain data value and a block header includingrequired reference values. The new block may be transmitted to otherblockchain nodes 102 in the blockchain network 104 as applicable, whichmay be confirmed and added to the blockchain. In step 314, theblockchain node 102 may determine if the vote passed (e.g., wasapproved). If the vote did not pass, then, in step 316, the transmittingdevice 220 of the blockchain node 102 may electronically transmit anotification message to the computing devices 108 of the users 106 inthe cooperative society, notifying the users 106 of the failed vote. Insome instances, the notification message may only be sent to users 106that submitted a vote. In other instances, the notification message maybe sent to users 106 authorized to vote on the proposal.

If, in step 314, the blockchain node 102 determines that the votepassed, then, in step 318, the transmitting device 220 of the blockchainnode 102 may electronically transmit a notification message to thecomputing devices 108 of the users 106 in the cooperative society,notifying the users 106 of the approved proposal. In step 320, theblockchain node 102 may perform one or more actions based on theproposal data, such as to fulfill the proposal. For example, thetransmitting device 220 of the blockchain node 102 may transmit acontract or offer to a real estate firm, the blockchain node 102 mayinitiate a payment transaction, the blockchain node 102 may generate anew blockchain data value that includes registration data for a new user106, data indicating a user 106 is no longer part of the society, or forchanging registration data for an existing user 106, etc.

Exemplary Method for Implementing a Cooperative Society ThroughBlockchain

FIG. 4 illustrates a method 400 for implementing a cooperative societythrough a blockchain with participation via computing devices forproposals and votes involving the cooperative society and users thereof.

In step 402, a blockchain may be stored in a memory (e.g., blockchaindata 206, memory 212, etc.) of a blockchain node (e.g., blockchain node102), the blockchain being comprised of a plurality of blocks, eachblock including at least a block header and one or more blockchain datavalues, where at least one of the one or more blockchain data valuesincluded in a specific block includes proposal data including at least aproposal identifier. In step 404, a vote message may be received by areceiver (e.g., receiving device 202) of the blockchain node from eachof a plurality of registered computing devices (e.g., computing devices108), where the vote message includes at least the proposal identifierand an affirmative or negative vote.

In step 406, a proposal result may be determined by a processor (e.g.,generation module 216, validation module 218, etc.) of the blockchainnode based on a number of affirmative votes in the received votemessages being above a predetermined threshold. In step 408, a new blockmay be generated by the processor (e.g., generation module 216) of theblockchain node, the new block including at least a new block header andat least one new blockchain data value, the at least one new blockchaindata value including the proposal result. In step 410, one or moreactions may be performed by the processor of the blockchain node basedon data included in the proposal data.

In one embodiment, the one or more of the one or more blockchain datavalues included in the plurality of blocks may include registration datafor each of the plurality of registered computing devices. In a furtherembodiment, the registration data may include a device identifier, andthe vote message received from each of the plurality of registeredcomputing devices may include a device identifier included in theregistration data for the registered computing device. In someembodiments, the method 400 may further include validating, for eachreceived vote message, the registered computing device the respectivevote message is received from by the processor of the blockchain node,wherein the proposal result is further based on received vote messageswith positive validations for the registered computing device therespective vote message is received from.

In one embodiment, the predetermined threshold may be a number ofnegative votes in the received vote messages that include the proposalidentifier. In some embodiments, the predetermined threshold may be atleast half of a number of computing devices in the plurality ofregistered computing devices. In one embodiment, the proposal data mayinclude the predetermined threshold. In some embodiments, the one ormore actions may include at least one of: initiating an electronicpayment transaction, initiating a blockchain transaction, transmitting apredetermined data message to a predetermined destination, andregistering a new computing device.

Computer System Architecture

FIG. 5 illustrates a computer system 500 in which embodiments of thepresent disclosure, or portions thereof, may be implemented ascomputer-readable code. For example, the blockchain node 102 of FIGS. 1and 2 may be implemented in the computer system 500 using hardware,non-transitory computer readable media having instructions storedthereon, or a combination thereof and may be implemented in one or morecomputer systems or other processing systems. Hardware may embodymodules and components used to implement the methods of FIGS. 3 and 4 .

If programmable logic is used, such logic may execute on a commerciallyavailable processing platform configured by executable software code tobecome a specific purpose computer or a special purpose device (e.g.,programmable logic array, application-specific integrated circuit,etc.). A person having ordinary skill in the art may appreciate thatembodiments of the disclosed subject matter can be practiced withvarious computer system configurations, including multi-coremultiprocessor systems, minicomputers, mainframe computers, computerslinked or clustered with distributed functions, as well as pervasive orminiature computers that may be embedded into virtually any device. Forinstance, at least one processor device and a memory may be used toimplement the above-described embodiments.

A processor unit or device as discussed herein may be a singleprocessor, a plurality of processors, or combinations thereof. Processordevices may have one or more processor “cores.” The terms “computerprogram medium,” “non-transitory computer readable medium,” and“computer usable medium” as discussed herein are used to generally referto tangible media such as a removable storage unit 518, a removablestorage unit 522, and a hard disk installed in hard disk drive 512.

Various embodiments of the present disclosure are described in terms ofthis example computer system 500. After reading this description, itwill become apparent to a person skilled in the relevant art how toimplement the present disclosure using other computer systems and/orcomputer architectures. Although operations may be described as asequential process, some of the operations may in fact be performed inparallel, concurrently, and/or in a distributed environment, and withprogram code stored locally or remotely for access by single ormulti-processor machines. In addition, in some embodiments the order ofoperations may be rearranged without departing from the spirit of thedisclosed subject matter.

Processor device 504 may be a special purpose or a general-purposeprocessor device specifically configured to perform the functionsdiscussed herein. The processor device 504 may be connected to acommunications infrastructure 506, such as a bus, message queue,network, multi-core message-passing scheme, etc. The network may be anynetwork suitable for performing the functions as disclosed herein andmay include a local area network (LAN), a wide area network (WAN), awireless network (e.g., WiFi), a mobile communication network, asatellite network, the Internet, fiber optic, coaxial cable, infrared,radio frequency (RF), or any combination thereof. Other suitable networktypes and configurations will be apparent to persons having skill in therelevant art. The computer system 500 may also include a main memory 508(e.g., random access memory, read-only memory, etc.), and may alsoinclude a secondary memory 510. The secondary memory 510 may include thehard disk drive 512 and a removable storage drive 514, such as a floppydisk drive, a magnetic tape drive, an optical disk drive, a flashmemory, etc.

The removable storage drive 514 may read from and/or write to theremovable storage unit 518 in a well-known manner. The removable storageunit 518 may include a removable storage media that may be read by andwritten to by the removable storage drive 514. For example, if theremovable storage drive 514 is a floppy disk drive or universal serialbus port, the removable storage unit 518 may be a floppy disk orportable flash drive, respectively. In one embodiment, the removablestorage unit 518 may be non-transitory computer readable recordingmedia.

In some embodiments, the secondary memory 510 may include alternativemeans for allowing computer programs or other instructions to be loadedinto the computer system 500, for example, the removable storage unit522 and an interface 520. Examples of such means may include a programcartridge and cartridge interface (e.g., as found in video gamesystems), a removable memory chip (e.g., EEPROM, PROM, etc.) andassociated socket, and other removable storage units 522 and interfaces520 as will be apparent to persons having skill in the relevant art.

Data stored in the computer system 500 (e.g., in the main memory 508and/or the secondary memory 510) may be stored on any type of suitablecomputer readable media, such as optical storage (e.g., a compact disc,digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage(e.g., a hard disk drive). The data may be configured in any type ofsuitable database configuration, such as a relational database, astructured query language (SQL) database, a distributed database, anobject database, etc. Suitable configurations and storage types will beapparent to persons having skill in the relevant art.

The computer system 500 may also include a communications interface 524.The communications interface 524 may be configured to allow software anddata to be transferred between the computer system 500 and externaldevices. Exemplary communications interfaces 524 may include a modem, anetwork interface (e.g., an Ethernet card), a communications port, aPCMCIA slot and card, etc. Software and data transferred via thecommunications interface 524 may be in the form of signals, which may beelectronic, electromagnetic, optical, or other signals as will beapparent to persons having skill in the relevant art. The signals maytravel via a communications path 526, which may be configured to carrythe signals and may be implemented using wire, cable, fiber optics, aphone line, a cellular phone link, a radio frequency link, etc.

The computer system 500 may further include a display interface 502. Thedisplay interface 502 may be configured to allow data to be transferredbetween the computer system 500 and external display 530. Exemplarydisplay interfaces 502 may include high-definition multimedia interface(HDMI), digital visual interface (DVI), video graphics array (VGA), etc.The display 530 may be any suitable type of display for displaying datatransmitted via the display interface 502 of the computer system 500,including a cathode ray tube (CRT) display, liquid crystal display(LCD), light-emitting diode (LED) display, capacitive touch display,thin-film transistor (TFT) display, etc.

Computer program medium and computer usable medium may refer tomemories, such as the main memory 508 and secondary memory 510, whichmay be memory semiconductors (e.g., DRAMs, etc.). These computer programproducts may be means for providing software to the computer system 500.Computer programs (e.g., computer control logic) may be stored in themain memory 508 and/or the secondary memory 510. Computer programs mayalso be received via the communications interface 524. Such computerprograms, when executed, may enable computer system 500 to implement thepresent methods as discussed herein. In particular, the computerprograms, when executed, may enable processor device 504 to implementthe methods illustrated by FIGS. 3 and 4 , as discussed herein.Accordingly, such computer programs may represent controllers of thecomputer system 500. Where the present disclosure is implemented usingsoftware, the software may be stored in a computer program product andloaded into the computer system 500 using the removable storage drive514, interface 520, and hard disk drive 512, or communications interface524.

The processor device 504 may comprise one or more modules or enginesconfigured to perform the functions of the computer system 500. Each ofthe modules or engines may be implemented using hardware and, in someinstances, may also utilize software, such as corresponding to programcode and/or programs stored in the main memory 508 or secondary memory510. In such instances, program code may be compiled by the processordevice 504 (e.g., by a compiling module or engine) prior to execution bythe hardware of the computer system 500. For example, the program codemay be source code written in a programming language that is translatedinto a lower-level language, such as assembly language or machine code,for execution by the processor device 504 and/or any additional hardwarecomponents of the computer system 500. The process of compiling mayinclude the use of lexical analysis, preprocessing, parsing, semanticanalysis, syntax-directed translation, code generation, codeoptimization, and any other techniques that may be suitable fortranslation of program code into a lower-level language suitable forcontrolling the computer system 500 to perform the functions disclosedherein. It will be apparent to persons having skill in the relevant artthat such processes result in the computer system 500 being a speciallyconfigured computer system 500 uniquely programmed to perform thefunctions discussed above.

Techniques consistent with the present disclosure provide, among otherfeatures, systems and methods for implementing a cooperative societythrough a blockchain with participation via computing devices. Whilevarious exemplary embodiments of the disclosed system and method havebeen described above it should be understood that they have beenpresented for purposes of example only, not limitations. It is notexhaustive and does not limit the disclosure to the precise formdisclosed. Modifications and variations are possible in light of theabove teachings or may be acquired from practicing of the disclosure,without departing from the breadth or scope.

What is claimed is:
 1. A method for atomic exchange of assets onmultiple blockchains using transient key pairs, comprising: generating,by a first computing device, a proposal message, the proposal messageincluding at least a first transaction value, a first network identifiercorresponding to a first blockchain, a second transaction value, asecond network identifier corresponding to a second blockchain, and aswap public key of a swap cryptographic key pair; generating, by thefirst computing device, a first digital signature for the proposalmessage; encrypting, by the first computing device, the first digitalsignature using the swap public key and a first private key of a firstcryptographic key pair; appending, by the first computing device, theencrypted first digital signature to the generated proposal message; andtransmitting, by the first computing device, the generated proposalmessage with appended encrypted first digital signature to a secondcomputing device.
 2. The method of claim 1, further comprising:generating, by the second computing device, a second digital signaturefor the proposal message; encrypting, by the second computing device,the second digital signature using the swap public key and a secondprivate key of a second cryptographic key pair; appending, by the secondcomputing device, the encrypted second digital signature to thegenerated proposal message with appended encrypted first digitalsignature; and transmitting, by the second computing device, thegenerated proposal message with appended encrypted first digitalsignature and appended encrypted second digital signature.
 3. The methodof claim 2, wherein the generated proposal message is transmitted by thesecond computing device to at least one of a plurality of blockchainnodes in a blockchain network associated with the second blockchain. 4.The method of claim 3, further comprising: generating, by the firstcomputing device, a confirmation message, the confirmation messageincluding at least (i) a hash value generated using the generatedproposal message with appended encrypted first digital signature andappended encrypted second digital signature, and (ii) a swap private keyof the swap cryptographic key pair; and transmitting, by the firstcomputing device, the generated confirmation message to a blockchainnode in the plurality of blockchain nodes in the blockchain networkassociated with the second blockchain.
 5. The method of claim 4, furthercomprising: retrieving, by a third computing device, the generatedconfirmation message and the generated proposal message with appendedencrypted first digital signature and appended encrypted second digitalsignature from the second blockchain; decrypting, by the third computingdevice, the first digital signature using the swap private key in theretrieved confirmation message and a first public key of the firstcryptographic key pair; and validating, by the third computing device,the decrypted first digital signature.
 6. The method of claim 1, furthercomprising: generating, by the first computing device, the swapcryptographic key pair prior to generating the proposal message.
 7. Themethod of claim 1, wherein the first digital signature is generated bysigning the first transaction value, first network identifier, secondtransaction value, and second network identifier in the proposalmessage.
 8. The method of claim 1, wherein the first transaction valueincludes a hash value generated using transaction data for a firstblockchain transaction using the first blockchain and the secondtransaction value include transaction data for a second blockchaintransaction using the second blockchain.
 9. A system for atomic exchangeof assets on multiple blockchains using transient key pairs, comprising:a first computing device, a second computing device, a first blockchain,and a second blockchain, wherein the first computing device generates aproposal message, the proposal message including at least a firsttransaction value, a first network identifier corresponding to the firstblockchain, a second transaction value, a second network identifiercorresponding to the second blockchain, and a swap public key of a swapcryptographic key pair, generates a first digital signature for theproposal message, encrypts the first digital signature using the swappublic key and a first private key of a first cryptographic key pair,appends the encrypted first digital signature to the generated proposalmessage, and transmits the generated proposal message with appendedencrypted first digital signature to a second computing device.
 10. Thesystem of claim 9, wherein the second computing device generates asecond digital signature for the proposal message, encrypts the seconddigital signature using the swap public key and a second private key ofa second cryptographic key pair, appends the encrypted second digitalsignature to the generated proposal message with appended encryptedfirst digital signature, and transmits the generated proposal messagewith appended encrypted first digital signature and appended encryptedsecond digital signature.
 11. The system of claim 10, furthercomprising: a blockchain network associated with the second blockchain;and a plurality of blockchain nodes in the blockchain network, whereinthe generated proposal message is transmitted by the second computingdevice to at least one of the plurality of blockchain nodes.
 12. Thesystem of claim 11, wherein the first computing device further Generatesa confirmation message, the confirmation message including at least (i)a hash value generated using the generated proposal message withappended encrypted first digital signature and appended encrypted seconddigital signature, and (ii) a swap private key of the swap cryptographickey pair, and transmits the generated confirmation message to ablockchain node in the plurality of blockchain nodes in the blockchainnetwork associated with the second blockchain.
 13. The system of claim12, further comprising: a third computing device, wherein the thirdcomputing device retrieves the generated confirmation message and thegenerated proposal message with appended encrypted first digitalsignature and appended encrypted second digital signature from thesecond blockchain, decrypts the first digital signature using the swapprivate key in the retrieved confirmation message and a first public keyof the first cryptographic key pair, and validates the decrypted firstdigital signature.
 14. The system of claim 9, wherein the firstcomputing device further generates the swap cryptographic key pair priorto generating the proposal message.
 15. The system of claim 9, whereinthe first digital signature is generated by signing the firsttransaction value, first network identifier, second transaction value,and second network identifier in the proposal message.
 16. The system ofclaim 9, wherein the first transaction value includes a hash valuegenerated using transaction data for a first blockchain transactionusing the first blockchain and the second transaction value includetransaction data for a second blockchain transaction using the secondblockchain.